home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Visual Basic 5.0 (2nd Edition) / Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso / Code / PUBPRI~1.CLS < prev    next >
Text File  |  1997-06-14  |  2KB  |  83 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "CPubPrivFilter"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = False
  10. Option Explicit
  11.  
  12. Implements IFilter
  13.  
  14. Private sSource As String
  15. Private sTarget As String
  16. Private sName As String
  17. Private fAttribute As Boolean
  18. Private fName As Boolean
  19.  
  20. ' CPubPrivFilter-specific methods and properties
  21. Public Property Let Name(sNameA As String)
  22.     sName = sNameA
  23. End Property
  24. Public Property Get Name() As String
  25.     Name = sName
  26. End Property
  27.  
  28. ' IFilter implementation
  29. Private Property Let IFilter_Source(sSourceA As String)
  30.     sSource = sSourceA
  31. End Property
  32. Private Property Get IFilter_Source() As String
  33.     IFilter_Source = sSource
  34. End Property
  35.  
  36. Private Property Let IFilter_Target(sTargetA As String)
  37.     sTarget = sTargetA
  38. End Property
  39. Private Property Get IFilter_Target() As String
  40.     IFilter_Target = sTarget
  41. End Property
  42.  
  43. Private Function IFilter_Translate(sLineA As String, ByVal iLineA As Long) As EChunkAction
  44.     ' Translate every line
  45.     IFilter_Translate = ecaTranslate
  46.     If Not fAttribute Then fAttribute = IsExposedFound(sLineA)
  47.     If Not fName Then fName = IsNameFound(sLineA)
  48. End Function
  49.  
  50. Private Function IsExposedFound(sLine As String) As Boolean
  51.     If sLine = sEmpty Then Exit Function
  52.     
  53.     ' Find VB_Exposed attribute and set to False
  54.     Dim sTok As String, sSep As String
  55.     sSep = " " & sTab
  56.     If GetQToken(sLine, sSep) = "Attribute" Then
  57.         If GetQToken(sEmpty, sSep) = "VB_Exposed" Then
  58.             sLine = "Attribute VB_Exposed = False"
  59.             IsExposedFound = True
  60.         End If
  61.     End If
  62. End Function
  63.  
  64. Private Function IsNameFound(sLine As String) As Boolean
  65.     If sLine = sEmpty Then Exit Function
  66.     
  67.     ' Find VB_Name attribute and change it
  68.     Dim sSep As String
  69.     sSep = " " & sTab
  70.     If GetQToken(sLine, sSep) = "Attribute" Then
  71.         If GetQToken(sEmpty, sSep) = "VB_Name" Then
  72.             ' Use default private name if private name isn't already set
  73.             If sName = sEmpty Then
  74.                 ' Skip "="
  75.                 Call GetQToken(sEmpty, sSep)
  76.                 sName = GetQToken(sEmpty, sSep)
  77.             End If
  78.             sLine = "Attribute VB_Name = " & sQuote2 & sName & sQuote2
  79.             IsNameFound = True
  80.         End If
  81.     End If
  82. End Function
  83.